#include<iostream>
#include<string>
#include<vector>
using namespace std;
//高精度减法保证大减小
//判断A大于等于B
bool cmp(vector<int>& A, vector<int>& B)
{
    if (A.size()!=B.size()) return A.size() > B.size();
    //从高位一位一位比
    //789
    //765
    for (int i = A.size()-1; i>=0; i--)
    {
        if (A[i] != B[i]) return A[i] > B[i];
    }
    return true;   //相等
}
//保证正数
vector<int> sub(vector<int>& A, vector<int>& B)
{

    vector<int> C;
    int t = 0;  //关键借位
    for (int i = 0; i < A.size(); i++)       //有位都运算
    {
        t = A[i] - t;                   //把借位减掉
        if (i < B.size()) t -= B[i];    //够位才减
        //减了有两种情况：1  -1(借位)    这两种尾插1
        C.push_back((t+10) % 10);       //+10防止负数
        
        if (t < 0) t = 1;               //负数借位1
        else t = 0;
    }
    //把所有前导0去掉(结果不为0才去)
    while (C.size() > 1 && C.back() == 0) C.pop_back();
    
    return C;
}
int main()
{
    string a, b;
    cin >> a >> b;
    //大整数这样存储
    vector<int> A, B;        //a:98732       b:3278
    for (int i = a.size()-1; i >= 0; i--) A.push_back(a[i] - '0'); //23789   方便我从个位开始计算
    for (int i = b.size()-1; i >= 0; i--) B.push_back(b[i] - '0'); //7823    方便我从个位开始计算

    //倒着打印
    vector<int> ans;
    //A>B  直接计算
    int k=cmp(A, B);
    if (k>0) {
        ans = sub(A, B);  
    }
    //B>A 计算-（B-A）
    else
    {
        ans=sub(B,A);   //-(B-A)
        cout << "-";
    }
    for (int i = ans.size() - 1; i >= 0; i--) cout << ans[i];
    return 0;
}


